﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AMail.Common.Interfaces.Data;
using System.ComponentModel;
using System.Collections.ObjectModel;
using Microsoft.Practices.Composite.Presentation.Commands;
using System.Windows.Input;
using System.Windows;

namespace AMail.Modules.Folders.Interfaces
{
  public interface IFoldersTreeViewModel : INotifyPropertyChanged
  {
    ObservableCollection<IFolderViewModel> RootFolders { get; }
    IFolderViewModel SelectedFolder { get; set; }

    ICommand CreateSubfolderCommand { get; }
    ICommand DeleteFolderCommand { get; }
    ICommand RenameFolderCommand { get; }

    bool CanDrop(IFolderViewModel targetFolder, IDataObject data);
    void Drop(IFolderViewModel targetFolder, IDataObject data);
    bool CanDrag(IFolderViewModel sourceFolder);
  }
}
